The invention relates to client/server data processing systems and to their development.
Such systems have traditionally been difficult to construct and expensive to maintain, particularly for large applications such as social security data processing. For example, business logic encoded in client applications has led to expensive maintenance. Also, user interface (UI) construction has tended to rely on platform-specific frameworks and so has caused portability problems. Also, many middleware products provided relatively low-level APIs to developers, necessitating a large extent of manual coding to xe2x80x9cboltxe2x80x9d the user interface onto client/server interfaces.
It is an object of the invention to provide for highly automated client/server system development to shorten development lead time and to improve quality.
According to the invention, there is provided a method for generating a client/server data processing system comprising the steps of:
developing a meta model of objects defining required processing logic;
a model generator automatically transforming the meta model into an application model of objects required for the data processing system;
a code generator automatically transforming the application model to a server by generating code for the application model objects;
an interface definition generator automatically generating an interface definition client representation, and a client interface generator automatically transforming said representation into code for client interfaces to server functions;
completing a client by developing client user interface code; and
loading the server and client code onto a hardware platform to complete a client/server data processing system.
In one embodiment, the meta model comprises process and entity objects developed in a case environment.
In one embodiment, the model generator executes mappings between meta model domains and application model domains.
In one embodiment, the mappings have a one-to-many relationship between domains in the meta model and those in the application model.
In another embodiment, the application model comprises:
an interface layer of objects;
a business object layer of objects; and
a data access layer of objects.
In one embodiment, a separate code generator transforms each layer of the application model.
In one embodiment, each code generator performs a semantic analysis of objects in the associated application model layer and uses code templates to generate code.
Preferably, the code templates include facilities for data inserts, data updates, singleton, and cursor-based reads, and optimistic locking.
In one embodiment, the client interface generator generates mapping objects and CORBA stubs.
In one embodiment, the mapping objects map user interface widgets to the CORBA stubs.
In a further embodiment, the maps are operable to capture data from a user interface screen.
Preferably, the maps are operable to perform data validation.
In one embodiment, the maps are operable to perform data conversion from user interface text to Java IDL mappings.
In one embodiment, the maps are operable to use converted data to access the server.
In one embodiment, the client interface generator parses the interface definition representation to determine services offered by the server to the client.
In another embodiment, the method comprises a step of generating rules for the server interface and business object layers by using a framework comprising a high-level graphical editor which allows a user to develop rules in a rule language, and a generator which generates source code from the rule language.
In one embodiment, the executable section comprises mathematical functions and tracing functions linking rate outputs back to high-level rule definition in the editor, and the editor generates a display of rule evidence, reasoning, and a result
According to another aspect, the invention provides a client/server data processing system whenever generated by a method as defined above.
According to a further aspect, the invention provides a computer program product directly loadable into the memory of a digital computer and comprising the server and client code generated by the method defined above.